Traditional database management systems rely on disk storage and have limited main memory. The main memory is accessible by a central processing unit (CPU) and input/output operations are performed between the disk and the main memory. These disk input/output operations are a performance bottleneck. An in-memory database overcomes this bottleneck. In an in-memory database, entire data relevant to a processing activity is stored in the main memory. Therefore, read operations can be executed without disk input/output operations, thereby enhancing performance. Any disk writing operations can happen asynchronously in the background without affecting CPU performance.
In-memory databases process large amounts of data in very short time. Typically, one or more software components are involved in a processing activity. Such software components can be stored external to the in-memory database. As an example, an external software component can be part of an existing data management system. Several situations require integration of an external software component and a process or a component of an in-memory database.